using System;
using Serilog;
using Serilog.Sinks.File;

namespace VehicleManager.Utils;

public class LogHelper
{
    public static void initLog()
    {
        Console.WriteLine("init log");
        // 配置Serilog：每天生成一个日志文件
        Log.Logger = new LoggerConfiguration()
            // 设置日志最低级别（Debug及以上都会被记录）
            .MinimumLevel.Debug()
            // 配置输出模板：包含时间、日志级别、消息、异常
            .Enrich.FromLogContext()
            .WriteTo.File(
                // 日志文件路径格式：每天一个文件（文件名包含日期）
                path: "logs/log-.txt",
                // 按日期滚动（每天创建新文件）
                rollingInterval: RollingInterval.Day,
                // 输出模板
                outputTemplate: "{Timestamp:yyyy-MM-dd HH:mm:ss.fff} [{Level:u3}] {Message:lj}{NewLine}{Exception}",
                // 保留日志文件的天数（可选）
                retainedFileCountLimit: 30, // 保留30天的日志
                // 编码格式
                encoding: System.Text.Encoding.UTF8
            )
#if DEBUG
            // 同时输出到控制台（可选）
            .WriteTo.Console(
                outputTemplate: "{Timestamp:yyyy-MM-dd HH:mm:ss.fff} [{Level:u3}] {Message:lj}{NewLine}{Exception}"
            )
#endif
            .CreateLogger();
    }
}